package com.wicket.okrapp.dal.po.mbg;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import com.wicket.okrapp.common.annotations.OrderFlag;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * @author xxx
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@TableName("oms_target_cycle")
public class OmsTargetCycle extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 目标周期ID
     */
    @TableId(value = "target_cycle_id", type = IdType.UUID)
    @NotNull(message = "targetCycleId不能为空")
    private String targetCycleId;
    /**
     * 周期ID
     */
    @TableField(value = "cycle_id")
    @NotNull(message = "周期ID不能为空")
    @ApiModelProperty("周期ID")
    private String cycleId;
    /**
     * 目标周期名称
     */
    @TableField(value = "target_cycle_name")
    @ApiModelProperty("目标周期名称")
    private String targetCycleName;
    /**
     * 目标周期简称
     */
    @TableField(value = "cyclel_alias")
    @ApiModelProperty("目标周期简称")
    private String cyclelAlias;
    /**
     * 评价模板创建时间
     */
    @TableField(value = "eva_temp_create_time")
    @NotNull(message = "评价模板创建时间不能为空")
    @ApiModelProperty("评价模板创建时间")
    private Date evaTempCreateTime;
    /**
     * 验收时间
     */
    @TableField(value = "reception_time")
    @ApiModelProperty("验收时间")
    private Date receptionTime;
    /**
     * 排序
     */
    @TableField(value = "order_number")
    @NotNull(message = "排序不能为空")
    @ApiModelProperty("排序")
    @OrderFlag(orderType = "asc")
    private Long orderNumber;
    /**
     * 是否父周期
     */
    @TableField(value = "is_father_cycle")
    @NotNull(message = "是否父周期不能为空")
    @ApiModelProperty("是否父周期")
    private String isFatherCycle;
    /**
     * 是否子周期
     */
    @TableField(value = "is_sub_cycle")
    @NotNull(message = "是否子周期不能为空")
    @ApiModelProperty("是否子周期")
    private String isSubCycle;
    /**
     * 是否中期
     */
    @TableField(value = "is_metaphase")
    @NotNull(message = "是否中期不能为空")
    @ApiModelProperty("是否中期")
    private String isMetaphase;
    /**
     * 是否工作周期类型编码
     */
    @TableField(value = "is_work_target_cycle")
    @NotNull(message = "是否工作周期类型编码不能为空")
    @ApiModelProperty("是否工作周期类型编码")
    private String isWorkTargetCycle;
    /**
     * 是否结果周期
     */
    @TableField(value = "is_result_cycle")
    @ApiModelProperty("是否结果周期")
    private String isResultCycle;
    /**
     * 工作周期类型编码
     */
    @TableField(value = "cycle_stage_type")
    @NotNull(message = "工作周期类型编码不能为空")
    @ApiModelProperty("工作周期类型编码")
    private String cycleStageType;
    /**
     * 目标周期来自内容类型编码
     */
    @TableField(value = "target_cycle_content_type_code")
    @NotNull(message = "目标周期来自内容类型编码不能为空")
    @ApiModelProperty("目标周期来自内容类型编码")
    private String targetCycleContentTypeCode;
    /**
     * 目标周期来自内容ID
     */
    @TableField(value = "target_cycle_content_id")
    @NotNull(message = "目标周期来自内容ID不能为空")
    @ApiModelProperty("目标周期来自内容ID")
    private String targetCycleContentId;
    /**
     * 评价模板ID
     */
    @TableField(value = "evaluation_template_id")
    @NotNull(message = "评价模板ID不能为空")
    @ApiModelProperty("评价模板ID")
    private String evaluationTemplateId;
    /**
     * 周期阶段关联工作周期ID
     */
    @TableField(value = "work_target_cycle_id")
    @NotNull(message = "周期阶段关联工作周期ID不能为空")
    @ApiModelProperty("周期阶段关联工作周期ID")
    private String workTargetCycleId;
    /**
     * 目标ID
     */
    @TableField(value = "target_id")
    @NotNull(message = "目标ID不能为空")
    @ApiModelProperty("目标ID")
    private String targetId;
    /**
     * 是否当前周期
     */
    @TableField(value = "is_current_cycle")
    @ApiModelProperty("是否当前周期")
    private String isCurrentCycle;
    /**
     * 是否下一周期
     */
    @TableField(value = "is_next_cycle")
    @ApiModelProperty("是否下一周期")
    private String isNextCycle;
    /**
     * 是否开始周期
     */
    @TableField(value = "is_start_cycle")
    @NotNull(message = "是否开始周期不能为空")
    @ApiModelProperty("是否开始周期")
    private String isStartCycle;
    /**
     * 是否截止周期
     */
    @TableField(value = "is_end_cycle")
    @NotNull(message = "是否截止周期不能为空")
    @ApiModelProperty("是否截止周期")
    private String isEndCycle;
    /**
     * 是否末级周期
     */
    @TableField(value = "is_last_cycle")
    @NotNull(message = "是否末级周期不能为空")
    @ApiModelProperty("是否末级周期")
    private String isLastCycle;
    /**
     * 最近可循环周期类型编码
     */
    @TableField(value = "next_cycle_period")
    @ApiModelProperty("最近可循环周期类型编码")
    private String nextCyclePeriod;
    /**
     * 预警里程碑值
     */
    @TableField(value = "milestone_value")
    @ApiModelProperty("预警里程碑值")
    private Double milestoneValue;
    /**
     * 目标周期进展状态
     */
    @TableField(value = "task_status")
    @NotNull(message = "目标周期进展状态不能为空")
    @ApiModelProperty("目标周期进展状态")
    private String taskStatus;
    /**
     * 周期类型配置标识
     */
    @TableField(value = "cycle_type_conf_code")
    @NotNull(message = "周期类型配置标识不能为空")
    @ApiModelProperty("周期类型配置标识")
    private String cycleTypeConfCode;
    /**
     * 批次ID
     */
    @TableField(value = "batch_id")
    @ApiModelProperty("批次ID")
    private String batchCode;
    /**
     * 批次开始时间
     */
    @TableField(value = "batch_start_time")
    @ApiModelProperty("批次开始时间")
    private Date batchStartTime;
    /**
     * 批次结束时间
     */
    @TableField(value = "batch_endt_time")
    @NotNull(message = "批次结束时间不能为空")
    @ApiModelProperty("批次结束时间")
    private Date batchEndtTime;
    /**
     * 批次下是否更新
     */
    @TableField(value = "is_update")
    @NotNull(message = "批次下是否更新不能为空")
    @ApiModelProperty("批次下是否更新")
    private String isUpdate;
    /**
     * 批次下更新状态
     */
    @TableField(value = "update_status")
    @NotNull(message = "批次下更新状态不能为空")
    @ApiModelProperty("批次下更新状态")
    private String updateStatus;
    /**
     * 存档类型
     */
    @TableField(value = "archivng_type")
    @NotNull(message = "存档类型不能为空")
    @ApiModelProperty("存档类型")
    private String archivngType;
    /**
     * 是否未来
     */
    @TableField(value = "is_editing")
    @NotNull(message = "是否未来不能为空")
    @ApiModelProperty("是否未来")
    private String isEditing;
    /**
     * 是否存档
     */
    @TableField(value = "is_archive")
    @NotNull(message = "是否存档不能为空")
    @ApiModelProperty("是否存档")
    private String isArchive;
    /**
     * 主体生命周期
     */
    @TableField(value = "subject_life_cycle")
    @NotNull(message = "主体生命周期不能为空")
    @ApiModelProperty("主体生命周期")
    private String subjectLifeCycle;
    /**
     * 操作人就职记录ID
     */
    @TableField(value = "operation_induction_id")
    @NotNull(message = "操作人就职记录ID不能为空")
    @ApiModelProperty("操作人就职记录ID")
    private String operationInductionId;
    /**
     * 创建人就职记录ID
     */
    @TableField(value = "create_induction_id")
    @NotNull(message = "创建人就职记录ID 不能为空")
    @ApiModelProperty("创建人就职记录ID ")
    private String createInductionId;
    /**
     * 发布人就职记录ID
     */
    @TableField(value = "release_induction_id")
    @ApiModelProperty("发布人就职记录ID")
    private String releaseInductionId;
    /**
     * 存档人就职记录ID
     */
    @TableField(value = "archive_induction_id")
    @ApiModelProperty("存档人就职记录ID")
    private String archiveInductionId;
    /**
     * 操作时间
     */
    @TableField(value = "operate_time")
    @NotNull(message = "操作时间不能为空")
    @ApiModelProperty("操作时间")
    @OrderFlag(orderType = "desc")
    private Date operateTime;
    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    @NotNull(message = "创建时间不能为空")
    @ApiModelProperty("创建时间")
    private Date createTime;
    /**
     * 发布时间
     */
    @TableField(value = "release_time")
    @ApiModelProperty("发布时间")
    private Date releaseTime;
    /**
     * 存档时间
     */
    @TableField(value = "archive_time")
    @ApiModelProperty("存档时间")
    private Date archiveTime;
    /**
     * 是否作废
     */
    @TableField(value = "is_valid")
    @NotNull(message = "是否作废不能为空")
    @ApiModelProperty("是否作废")
    private String isValid;
    /**
     * 创建于空间ID
     */
    @TableField(value = "space_id")
    @NotNull(message = "创建于空间ID不能为空")
    @ApiModelProperty("创建于空间ID")
    private String spaceId;
    /**
     * 创建于联盟应用ID
     */
    @TableField(value = "app_id")
    @NotNull(message = "创建于联盟应用ID不能为空")
    @ApiModelProperty("创建于联盟应用ID")
    private String appId;
}
